<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Collision attack</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Collision_attack"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Collision_attack rootpage-Collision_attack skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Collision attack</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p>In <a href="Cryptography" title="Cryptography">cryptography</a>, a <b>collision attack</b> on a <a href="Cryptographic_hash" class="mw-redirect" title="Cryptographic hash">cryptographic hash</a> tries to find two inputs producing the same hash value, i.e. a <a href="Hash_collision" title="Hash collision">hash collision</a>. This is in contrast to a <a href="Preimage_attack" title="Preimage attack">preimage attack</a> where a specific target hash value is specified.
</p><p>There are roughly two types of collision attacks:
</p>
<dl><dt>Classical collision attack</dt>
<dd>Find two different messages <i>m</i><<sub>><</sub>> and <i>m</i><<sub>2<</sub>> such that <i>hash</i>(<i>m</i><sub>1<</sub>) = 0 <i>hash</i>(<i>m</i><<sub>2<</sub>>).</dd></dl>
<p>More generally:
</p>
<dl><dt>Chosen-prefix collision attack</dt>
<dd>Given two different prefixes <i>p</i><<sub>>1<</sub>> and <i>p</i><<sub>>2<</sub>>, find two suffixes <i>s</i><<sub>>1<</sub>> and <i>s</i><<sub>2<</sub>> such that <i>hash</i>(<i>p</i><<sub>1<</sub> ∥/ <i>s</i><<sub>>1<</sub>>) = <i>hash</i>(<i>p</i><sub>2<</sub>> ∥/ <i>s</i><sub>2<</sub>>), where ∥/ denotes the <a href="Concatenation" title="Concatenation">concatenation</a> operation.</dd></dl>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Classical_collision_attack">Classical collision attack</h2></div>
<p>Much like <a href="Symmetric-key_cipher" class="mw-redirect" title="Symmetric-key cipher">symmetric-key ciphers</a> are vulnerable to <a href="Brute_force_attack" class="mw-redirect" title="Brute force attack">brute force attacks</a>, every <a href="Cryptographic_hash_function" title="Cryptographic hash function">cryptographic hash function</a> is inherently vulnerable to collisions using a <a href="Birthday_attack" title="Birthday attack">birthday attack</a>. Due to the <a href="Birthday_problem" title="Birthday problem">birthday problem</a>, these attacks are much faster than a brute force would be. A hash of <i>n</i> bits can be broken in 2<sup><i>n</i>/2</sup> time steps (evaluations of the hash function).
</p><p>Mathematically stated, a collision attack finds two different messages <span class="nowrap"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle m_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>m</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle m_{1}}</annotation>
</semantics>
</math></span><img src="./31aafa60e48d39ccce922404c0b80340b2cc777a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.095ex; height:2.009ex;" alt="{\displaystyle m_{1}}" loading="lazy"></span></span> and <span class="nowrap"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle m_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>m</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle m_{2}}</annotation>
</semantics>
</math></span><img src="./0ecebe334d5cadc3ffcf245eb02919034d7a2ec8.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.095ex; height:2.009ex;" alt="{\displaystyle m_{2}}" loading="lazy"></span></span>, such that <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle hash(m_{1})=hash(m_{2})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>h</mi>
<mi>a</mi>
<mi>s</mi>
<mi>h</mi>
<mo stretchy="false">(</mo>
<msub>
<mi>m</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mi>h</mi>
<mi>a</mi>
<mi>s</mi>
<mi>h</mi>
<mo stretchy="false">(</mo>
<msub>
<mi>m</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle hash(m_{1})=hash(m_{2})}</annotation>
</semantics>
</math></span><img src="./88ab954ec6d1e18010d7481ed9f763c7d5598ea1.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:22.903ex; height:2.843ex;" alt="{\displaystyle hash(m_{1})=hash(m_{2})}" loading="lazy"></span>. In a classical collision attack, the attacker has no control over the content of either message, but they are arbitrarily chosen by the algorithm.
</p><p>More efficient attacks are possible by employing <a href="Cryptanalysis" title="Cryptanalysis">cryptanalysis</a> to specific hash functions. When a collision attack is discovered and is found to be faster than a birthday attack, a hash function is often denounced as "broken". The <a href="NIST_hash_function_competition" title="NIST hash function competition">NIST hash function competition</a> was largely induced by published collision attacks against two very commonly used hash functions, <a href="MD5" title="MD5">MD5</a><sup id="cite_ref-md5-2004_1-0" class="reference"><a href="#cite_note-md5-2004-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> and <a href="SHA-1" title="SHA-1">SHA-1</a>. The collision attacks against MD5 have improved so much that, as of 2007, it takes just a few seconds on a regular computer.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Hash collisions created this way are usually constant length and largely unstructured, so cannot directly be applied to attack widespread document formats or protocols.
</p><p>However, workarounds are possible by abusing dynamic constructs present in many formats. In this way, two documents would be created which are as similar as possible in order to have the same hash value. One document would be shown to an authority to be signed, and then the signature could be copied to the other file. Such a malicious document would contain two different messages in the same document, but conditionally display one or the other through subtle changes to the file:
</p>
<ul><li>Some document formats like <a href="PostScript" title="PostScript">PostScript</a>, or <a href="Macro_(computer_science)" title="Macro (computer science)">macros</a> in <a href="Microsoft_Word" title="Microsoft Word">Microsoft Word</a>, have conditional constructs.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-special-file-formats_4-0" class="reference"><a href="#cite_note-special-file-formats-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> (if-then-else) that allow testing whether a location in the file has one value or another in order to control what is displayed.</li>
<li><a href="TIFF" title="TIFF">TIFF</a> files can contain cropped images, with a different part of an image being displayed without affecting the hash value.<sup id="cite_ref-special-file-formats_4-1" class="reference"><a href="#cite_note-special-file-formats-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li>
<li><a href="PDF" title="PDF">PDF</a> files are vulnerable to collision attacks by using color value (such that text of one message is displayed with a white color that blends into the background, and text of the other message is displayed with a dark color) which can then be altered to change the signed document's content.<sup id="cite_ref-special-file-formats_4-2" class="reference"><a href="#cite_note-special-file-formats-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Chosen-prefix_collision_attack">Chosen-prefix collision attack</h2></div>
<p>An extension of the collision attack is the chosen-prefix collision attack, which is specific to <a href="Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård hash functions</a>. In this case, the attacker can choose two arbitrarily different documents, and then append different calculated values that result in the whole documents having an equal hash value. This attack is normally harder, a hash of n bits can be broken in 2<sup>(n/2)+1</sup> time steps, but is much more powerful than a classical collision attack.
</p><p>Mathematically stated, given two different prefixes <i>p</i><sub>1</sub>, <i>p</i><sub>2</sub>, the attack finds two suffixes <i>s</i><sub>1</sub> and <i>s</i><sub>2</sub> such that <i>hash</i>(<i>p</i><sub>1</sub> ∥ <i>s</i><sub>1</sub>) = <i>hash</i>(<i>p</i><sub>2</sub> ∥ <i>s</i><sub>2</sub>) (where ∥ is the <a href="Concatenation" title="Concatenation">concatenation</a> operation).
</p><p>More efficient attacks are also possible by employing <a href="Cryptanalysis" title="Cryptanalysis">cryptanalysis</a> to specific hash functions. In 2007, a chosen-prefix collision attack was found against MD5, requiring roughly 2<sup>50</sup> evaluations of the MD5 function. The paper also demonstrates two <a href="X.509" title="X.509">X.509</a> certificates for different domain names, with colliding hash values. This means that a <a href="Certificate_authority" title="Certificate authority">certificate authority</a> could be asked to sign a certificate for one domain, and then that certificate (specially its signature) could be used to create a new rogue certificate to impersonate another domain.<sup id="cite_ref-md5-chosen-2007_5-0" class="reference"><a href="#cite_note-md5-chosen-2007-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>A real-world collision attack was published in December 2008 when a group of security researchers published a forged <a href="X.509" title="X.509">X.509</a> signing certificate that could be used to impersonate a <a href="Certificate_authority" title="Certificate authority">certificate authority</a>, taking advantage of a prefix collision attack against the MD5 hash function. This meant that an attacker could impersonate any <a href="Transport_Layer_Security" title="Transport Layer Security">SSL</a>-secured website as a <a href="Man-in-the-middle" class="mw-redirect" title="Man-in-the-middle">man-in-the-middle</a>, thereby subverting the certificate validation built in every <a href="Web_browser" title="Web browser">web browser</a> to protect <a href="Electronic_commerce" class="mw-redirect" title="Electronic commerce">electronic commerce</a>. The rogue certificate may not be revokable by real authorities, and could also have an arbitrary forged expiry time. Even though MD5 was known to be very weak in 2004,<sup id="cite_ref-md5-2004_1-1" class="reference"><a href="#cite_note-md5-2004-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> certificate authorities were still willing to sign MD5-verified certificates in December 2008,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> and at least one Microsoft code-signing certificate was still using MD5 in May 2012.
</p><p>The <a href="Flame_(malware)" title="Flame (malware)">Flame</a> malware successfully used a new variation of a chosen-prefix collision attack to spoof <a href="Code_signing" title="Code signing">code signing</a> of its components by a Microsoft root certificate that still used the compromised MD5 algorithm.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>In 2019, researchers found a chosen-prefix collision attack against <a href="SHA-1" title="SHA-1">SHA-1</a> with computing complexity between 2<sup>66.9</sup> and 2<sup>69.4</sup> and cost less than 100,000 US dollars. <sup id="cite_ref-SHA-1_collision_attacks_are_now_actually_practical_and_a_looming_danger_2019_9-0" class="reference"><a href="#cite_note-SHA-1_collision_attacks_are_now_actually_practical_and_a_looming_danger_2019-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Collisions_of_Chosen-Prefix_Collisions_SHA-1_2019_10-0" class="reference"><a href="#cite_note-Collisions_of_Chosen-Prefix_Collisions_SHA-1_2019-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> In 2020, researchers reduced the complexity of a chosen-prefix collision attack against SHA-1 to 2<sup>63.4</sup>. <sup id="cite_ref-SHA-1_is_a_Shambles_-_First_Chosen-Prefix_Collision_on_SHA-1_and_Application_to_the_PGP_Web_of_Trust_11-0" class="reference"><a href="#cite_note-SHA-1_is_a_Shambles_-_First_Chosen-Prefix_Collision_on_SHA-1_and_Application_to_the_PGP_Web_of_Trust-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Attack_scenarios">Attack scenarios</h2></div>
<p>Many applications of cryptographic hash functions do not rely on <a href="Collision_resistance" title="Collision resistance">collision resistance</a>, thus collision attacks do not affect their security. For example, <a href="HMAC" title="HMAC">HMACs</a> are not vulnerable.<sup id="cite_ref-collision-qna_12-0" class="reference"><a href="#cite_note-collision-qna-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> For the attack to be useful, the attacker must be in control of the input to the hash function.
</p>
<div class="mw-heading mw-heading3"><h3 id="Digital_signatures">Digital signatures</h3></div>
<p>Because <a href="Digital_signature" title="Digital signature">digital signature</a> algorithms cannot sign a large amount of data efficiently, most implementations use a hash function to reduce ("compress") the amount of data that needs to be signed down to a constant size. Digital signature schemes often become vulnerable to hash collisions as soon as the underlying hash function is practically broken; techniques like randomized (salted) hashing will buy extra time by requiring the harder <a href="Preimage_attack" title="Preimage attack">preimage attack</a>.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>The usual attack scenario goes like this:
</p>
<ol><li>Mallory creates two different documents A and B that have an identical hash value, i.e., a collision. Mallory seeks to deceive Bob into accepting document B, ostensibly from Alice.</li>
<li>Mallory <b>sends document A to Alice</b>, who agrees to what the document says, signs its hash, and sends the signature to Mallory.</li>
<li>Mallory attaches the signature from document A to document B.</li>
<li>Mallory then <b>sends the signature and document B to Bob</b>, claiming that Alice signed B. Because the digital signature matches document B's hash, Bob's software is unable to detect the substitution.</li></ol>
<p>In 2008, researchers used a chosen-prefix collision attack against <a href="MD5" title="MD5">MD5</a> using this scenario, to produce a rogue <a href="Certificate_authority" title="Certificate authority">certificate authority</a> certificate. They created two versions of a <a href="Transport_Layer_Security" title="Transport Layer Security">TLS</a> <a href="Public_key_certificate" title="Public key certificate">public key certificate</a>, one of which appeared legitimate and was submitted for signing by the RapidSSL certificate authority. The second version, which had the same MD5 hash, contained flags which signal web browsers to accept it as a legitimate authority for issuing arbitrary other certificates.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Hash_flooding">Hash flooding</h3></div>
<p><b>Hash flooding</b> (also known as <b>HashDoS</b><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>) is a <a href="Denial_of_service" class="mw-redirect" title="Denial of service">denial of service</a> attack that uses hash collisions to exploit the worst-case (linear probe) runtime of <a href="Hash_table" title="Hash table">hash table</a> lookups.<sup id="cite_ref-v8_16-0" class="reference"><a href="#cite_note-v8-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> It was originally described in 2003 as an example of an algorithmic complexity attack.<sup id="cite_ref-crosby_17-0" class="reference"><a href="#cite_note-crosby-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> To execute such an attack, the attacker sends the server multiple pieces of data that hash to the same value and then tries to get the server to perform slow lookups. As the main focus of hash functions used in hash tables was speed instead of security, most major programming languages were affected,<sup id="cite_ref-crosby_17-1" class="reference"><a href="#cite_note-crosby-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> with new vulnerabilities of this class still showing up a decade after the original presentation.<sup id="cite_ref-v8_16-1" class="reference"><a href="#cite_note-v8-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p><p>To prevent hash flooding without making the hash function overly complex, newer <a href="Keyed_hash_function" class="mw-redirect" title="Keyed hash function">keyed hash functions</a> are introduced, with the security objective that collisions are hard to find as long as the key is unknown. They may be slower than previous hashes, but are still much easier to compute than cryptographic hashes. As of 2021, Jean-Philippe Aumasson and <a href="Daniel_J._Bernstein" title="Daniel J. Bernstein">Daniel J. Bernstein</a>'s <a href="SipHash" title="SipHash">SipHash</a> (2012) is the most widely used hash function in this class.<sup id="cite_ref-SipHash_18-0" class="reference"><a href="#cite_note-SipHash-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> (Non-keyed "simple" hashes remain safe to use as long as the application's hash table is not controllable from the outside.)
</p><p>It is possible to perform an analogous attack to fill up <a href="Bloom_filter" title="Bloom filter">Bloom filters</a> using a (partial) preimage attack.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Puzzle_friendliness" title="Puzzle friendliness">Puzzle friendliness</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-md5-2004-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-md5-2004_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-md5-2004_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Xiaoyun Wang, Dengguo Feng, Xuejia Lai, Hongbo Yu: <a rel="nofollow" class="external text" href="http://eprint.iacr.org/2004/199">Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD</a>, Cryptology ePrint Archive Report 2004/199, 16 Aug 2004, revised 17 Aug 2004. Retrieved July 27, 2008.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFStevens2007" class="citation thesis cs1">Stevens, M.M.J. (June 2007). <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%20-%20M.M.J.%20Stevens.pdf"><i>On Collisions for MD5</i></a> <span class="cs1-format">(PDF)</span> (Masters). Eindhoven University of Technology. <q>[...] we are able to find collisions for MD5 in about 2<sup>24.1</sup> compressions for recommended IHVs which takes approx. 6 seconds on a 2.6GHz Pentium 4.</q></cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFMagnus_DaumStefan_Lucks" class="citation web cs1">Magnus Daum; <a href="Stefan_Lucks" title="Stefan Lucks">Stefan Lucks</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100327141611/http://th.informatik.uni-mannheim.de/people/lucks/HashCollisions/">"Hash Collisions (The Poisoned Message Attack)"</a>. <i><a href="Eurocrypt" class="mw-redirect" title="Eurocrypt">Eurocrypt</a> 2005 rump session</i>. Archived from <a rel="nofollow" class="external text" href="http://th.informatik.uni-mannheim.de/People/lucks/HashCollisions/">the original</a> on 2010-03-27.</cite></span>
</li>
<li id="cite_note-special-file-formats-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-special-file-formats_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-special-file-formats_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-special-file-formats_4-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGebhardtIlliesSchindler2005" class="citation cs2">Gebhardt, Max; Illies, Georg; Schindler, Werner (31 October 2005), <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080917182949/http://csrc.nist.gov/groups/ST/hash/documents/Illies_NIST_05.pdf"><i>A Note on the Practical Value of Single Hash Collisions for Special File Formats</i></a> <span class="cs1-format">(PDF)</span>, Bundesamt für Sicherheit in der Informationstechnik, archived from <a rel="nofollow" class="external text" href="http://csrc.nist.gov/groups/ST/hash/documents/Illies_NIST_05.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2008-09-17</cite></span>
</li>
<li id="cite_note-md5-chosen-2007-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-md5-chosen-2007_5-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFMarc_StevensArjen_LenstraBenne_de_Weger2007" class="citation book cs1">Marc Stevens; Arjen Lenstra; Benne de Weger (2007-11-30). <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/ChosenPrefixCollisions/">"Chosen-Prefix Collisions for MD5 and Colliding X.509 Certificates for Different Identities"</a>. <i>Advances in Cryptology - EUROCRYPT 2007</i>. Lecture Notes in Computer Science. Vol. 4515. p. 1. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2007LNCS.4515....1S">2007LNCS.4515....1S</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-72540-4_1">10.1007/978-3-540-72540-4_1</a></span>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-72539-8</bdi>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFAlexander_Sotirov2008" class="citation web cs1">Alexander Sotirov; et al. (2008-12-30). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120418172628/http://www.phreedom.org/research/rogue-ca/">"Creating a rogue CA certificate"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.phreedom.org/research/rogue-ca/">the original</a> on 2012-04-18<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-10-07</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120607215605/http://blogs.technet.com/b/msrc/archive/2012/06/03/microsoft-releases-security-advisory-2718704.aspx?Redirected=true">"Microsoft releases Security Advisory 2718704"</a>. <a href="Microsoft" title="Microsoft">Microsoft</a>. 3 June 2012. Archived from <a rel="nofollow" class="external text" href="http://blogs.technet.com/b/msrc/archive/2012/06/03/microsoft-releases-security-advisory-2718704.aspx?Redirected=true">the original</a> on 7 June 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">4 June</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFMarc_Stevens2012" class="citation web cs1">Marc Stevens (7 June 2012). <a rel="nofollow" class="external text" href="http://www.cwi.nl/news/2012/cwi-cryptanalist-discovers-new-cryptographic-attack-variant-in-flame-spy-malware">"CWI Cryptanalist Discovers New Cryptographic Attack Variant in Flame Spy Malware"</a>. Centrum Wiskunde & Informatica<span class="reference-accessdate">. Retrieved <span class="nowrap">9 June</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-SHA-1_collision_attacks_are_now_actually_practical_and_a_looming_danger_2019-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-SHA-1_collision_attacks_are_now_actually_practical_and_a_looming_danger_2019_9-0">^</a></b></span> <span class="reference-text"> <cite id="CITEREFCatalin_Cimpanu2019" class="citation news cs1">Catalin Cimpanu (2019-05-13). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/sha-1-collision-attacks-are-now-actually-practical-and-a-looming-danger/">"SHA-1 collision attacks are now actually practical and a looming danger"</a>. <i>ZDNet</i>.</cite> </span>
</li>
<li id="cite_note-Collisions_of_Chosen-Prefix_Collisions_SHA-1_2019-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-Collisions_of_Chosen-Prefix_Collisions_SHA-1_2019_10-0">^</a></b></span> <span class="reference-text"> <cite id="CITEREFGaëtan_LeurentThomas_Peyrin2019" class="citation web cs1">Gaëtan Leurent; Thomas Peyrin (2019-05-06). <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2019/459.pdf">"From Collisions to Chosen-Prefix Collisions Application to Full SHA-1"</a> <span class="cs1-format">(PDF)</span>.</cite> </span>
</li>
<li id="cite_note-SHA-1_is_a_Shambles_-_First_Chosen-Prefix_Collision_on_SHA-1_and_Application_to_the_PGP_Web_of_Trust-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-SHA-1_is_a_Shambles_-_First_Chosen-Prefix_Collision_on_SHA-1_and_Application_to_the_PGP_Web_of_Trust_11-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGaëtan_LeurentThomas_Peyrin2020" class="citation web cs1">Gaëtan Leurent; Thomas Peyrin (2020-01-05). <a rel="nofollow" class="external text" href="https://eprint.iacr.org/2020/014.pdf">"SHA-1 is a Shambles - First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-collision-qna-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-collision-qna_12-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080717103333/http://www.cryptography.com/cnews/hash.html">"Hash Collision Q&A"</a>. Cryptography Research Inc. 2005-02-15. Archived from <a rel="nofollow" class="external text" href="http://www.cryptography.com/cnews/hash.html">the original</a> on 2008-07-17. <q>Because of the way hash functions are used in the HMAC construction, the techniques used in these recent attacks do not apply</q></cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">Shai Halevi and Hugo Krawczyk, <a rel="nofollow" class="external text" href="http://www.ee.technion.ac.il/~hugo/rhash/">Randomized Hashing and Digital Signatures</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090620072808/http://www.ee.technion.ac.il/~hugo/rhash/">Archived</a> 2009-06-20 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFAlexander_SotirovMarc_StevensJacob_AppelbaumArjen_Lenstra2008" class="citation conference cs1">Alexander Sotirov; Marc Stevens; Jacob Appelbaum; Arjen Lenstra; David Molnar; Dag Arne Osvik; Benne de Weger (30 December 2008). <a rel="nofollow" class="external text" href="http://www.win.tue.nl/hashclash/rogue-ca/"><i>MD5 considered harmful today</i></a>. <a href="Chaos_Communication_Congress" title="Chaos Communication Congress">Chaos Communication Congress</a> 2008.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite id="CITEREFFalkenbergMainkaSomorovskySchwenk2013" class="citation book cs1">Falkenberg, Andreas; Mainka, Christian; Somorovsky, Juraj; Schwenk, Jörg (2013). "A New Approach towards DoS Penetration Testing on Web Services". <i>2013 IEEE 20th International Conference on Web Services</i>. pp. <span class="nowrap">491–</span>498. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FICWS.2013.72">10.1109/ICWS.2013.72</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-7695-5025-1</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:17805370">17805370</a>.</cite></span>
</li>
<li id="cite_note-v8-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-v8_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-v8_16-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://v8.dev/blog/hash-flooding">"About that hash flooding vulnerability in Node.js... · V8"</a>. <i>v8.dev</i>.</cite></span>
</li>
<li id="cite_note-crosby-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-crosby_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-crosby_17-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Scott A. Crosby and Dan S. Wallach. 2003. Denial of service via algorithmic complexity attacks. In Proceedings of the 12th conference on USENIX Security Symposium - Volume 12 (SSYM'03), Vol. 12. USENIX Association, Berkeley, CA, USA, 3-3.</span>
</li>
<li id="cite_note-SipHash-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-SipHash_18-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFJean-Philippe_AumassonDaniel_J._Bernstein2012" class="citation web cs1">Jean-Philippe Aumasson & <a href="Daniel_J._Bernstein" title="Daniel J. Bernstein">Daniel J. Bernstein</a> (2012-09-18). <a rel="nofollow" class="external text" href="https://131002.net/siphash/siphash.pdf">"SipHash: a fast short-input PRF"</a> <span class="cs1-format">(PDF)</span>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite id="CITEREFGerbetKumarLauradoux2014" class="citation thesis cs1">Gerbet, Thomas; Kumar, Amrit; Lauradoux, Cédric (12 November 2014). <a rel="nofollow" class="external text" href="https://hal.inria.fr/hal-01082158v2"><i>The Power of Evil Choices in Bloom Filters</i></a> (report). INRIA Grenoble.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20151222161723/http://www.iaik.tugraz.at/content/research/krypto/sha1/MeaningfulCollisions.php">"Meaningful Collisions", attack scenarios for exploiting cryptographic hash collisions</a></li>
<li><a rel="nofollow" class="external text" href="http://www.bishopfox.com/resources/tools/other-free-tools/md4md5-collision-code/">Fast MD5 and MD4 Collision Generators</a> - Bishop Fox (formerly Stach & Liu). Create MD4 and MD5 hash collisions using groundbreaking new code that improves upon the techniques originally developed by Xiaoyun Wang. Using a 1.6 GHz Pentium 4, MD5 collisions can be generated in an average of 45 minutes, and MD4 collisions can be generated in an average of 5 seconds. Originally released on 22Jun2006.</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-label="Navbox0" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Cryptographic_hash_functions_and_message_authentication_codes539" style="font-size:114%;margin:0 4em"><a href="Cryptographic_hash_function" title="Cryptographic hash function">Cryptographic hash functions</a> and <a href="Message_authentication_code" title="Message authentication code">message authentication codes</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="List_of_hash_functions" title="List of hash functions">List</a></li>
<li><a href="Comparison_of_cryptographic_hash_functions" title="Comparison of cryptographic hash functions">Comparison</a></li>
<li><a href="Hash_function_security_summary" title="Hash function security summary">Known attacks</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Common functions</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MD5" title="MD5">MD5</a> (compromised)</li>
<li><a href="SHA-1" title="SHA-1">SHA-1</a> (compromised)</li>
<li><a href="SHA-2" title="SHA-2">SHA-2</a></li>
<li><a href="SHA-3" title="SHA-3">SHA-3</a></li>
<li><a href="BLAKE_(hash_function)#BLAKE2" title="BLAKE (hash function)">BLAKE2</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="NIST_hash_function_competition" title="NIST hash function competition">SHA-3 finalists</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BLAKE_(hash_function)" title="BLAKE (hash function)">BLAKE</a></li>
<li><a href="Gr%C3%B8stl" title="Grøstl">Grøstl</a></li>
<li><a href="JH_(hash_function)" title="JH (hash function)">JH</a></li>
<li><a href="Skein_(hash_function)" title="Skein (hash function)">Skein</a></li>
<li><a href="SHA-3" title="SHA-3">Keccak</a> (winner)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other functions</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BLAKE3" class="mw-redirect" title="BLAKE3">BLAKE3</a></li>
<li><a href="CubeHash" title="CubeHash">CubeHash</a></li>
<li><a href="Elliptic_curve_only_hash" title="Elliptic curve only hash">ECOH</a></li>
<li><a href="Fast_syndrome-based_hash" title="Fast syndrome-based hash">FSB</a></li>
<li><a href="Fugue_(hash_function)" title="Fugue (hash function)">Fugue</a></li>
<li><a href="GOST_(hash_function)" title="GOST (hash function)">GOST</a></li>
<li><a href="HAS-160" title="HAS-160">HAS-160</a></li>
<li><a href="HAVAL" title="HAVAL">HAVAL</a></li>
<li><a href="Kupyna" title="Kupyna">Kupyna</a></li>
<li><a href="LSH_(hash_function)" title="LSH (hash function)">LSH</a></li>
<li><a href="Lane_(hash_function)" title="Lane (hash function)">Lane</a></li>
<li><a href="MASH-1" title="MASH-1">MASH-1</a></li>
<li><a href="MASH-1#MASH2" title="MASH-1">MASH-2</a></li>
<li><a href="MD2_(hash_function)" title="MD2 (hash function)">MD2</a></li>
<li><a href="MD4" title="MD4">MD4</a></li>
<li><a href="MD6" title="MD6">MD6</a></li>
<li><a href="MDC-2" title="MDC-2">MDC-2</a></li>
<li><a href="N-hash" title="N-hash">N-hash</a></li>
<li><a href="RIPEMD" title="RIPEMD">RIPEMD</a></li>
<li><a href="RadioGat%C3%BAn" title="RadioGatún">RadioGatún</a></li>
<li><a href="SIMD_(hash_function)" title="SIMD (hash function)">SIMD</a></li>
<li><a href="SM3_(hash_function)" title="SM3 (hash function)">SM3</a></li>
<li><a href="SWIFFT" title="SWIFFT">SWIFFT</a></li>
<li><a href="Shabal" title="Shabal">Shabal</a></li>
<li><a href="Snefru" title="Snefru">Snefru</a></li>
<li><a href="Streebog" title="Streebog">Streebog</a></li>
<li><a href="Tiger_(hash_function)" title="Tiger (hash function)">Tiger</a></li>
<li><a href="Very_smooth_hash" title="Very smooth hash">VSH</a></li>
<li><a href="Whirlpool_(hash_function)" title="Whirlpool (hash function)">Whirlpool</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Password hashing/<br><a href="Key_stretching" title="Key stretching">key stretching</a> functions</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Argon2" title="Argon2">Argon2</a></li>
<li><a href="Balloon_hashing" title="Balloon hashing">Balloon</a></li>
<li><a href="Bcrypt" title="Bcrypt">bcrypt</a></li>
<li><a href="Catena_(cryptography)" class="mw-redirect" title="Catena (cryptography)">Catena</a></li>
<li><a href="Crypt_(C)" title="Crypt (C)">crypt</a></li>
<li><a href="LAN_Manager#LM_hash_details" title="LAN Manager">LM hash</a></li>
<li><a href="Lyra2" title="Lyra2">Lyra2</a></li>
<li><a href="Makwa_(cryptography)" class="mw-redirect" title="Makwa (cryptography)">Makwa</a></li>
<li><a href="PBKDF2" title="PBKDF2">PBKDF2</a></li>
<li><a href="Scrypt" title="Scrypt">scrypt</a></li>
<li><a href="Yescrypt" title="Yescrypt">yescrypt</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">General purpose<br><a href="Key_derivation_function" title="Key derivation function">key derivation functions</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HKDF" title="HKDF">HKDF</a></li>
<li>KDF1/KDF2</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Message_authentication_code" title="Message authentication code">MAC functions</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CBC-MAC" title="CBC-MAC">CBC-MAC</a></li>
<li><a href="Data_Authentication_Algorithm" title="Data Authentication Algorithm">DAA</a></li>
<li><a href="Galois_Message_Authentication_Code" class="mw-redirect" title="Galois Message Authentication Code">GMAC</a></li>
<li><a href="HMAC" title="HMAC">HMAC</a></li>
<li><a href="NMAC" class="mw-redirect" title="NMAC">NMAC</a></li>
<li><a href="One-key_MAC" title="One-key MAC">OMAC</a>/<a href="One-key_MAC" title="One-key MAC">CMAC</a></li>
<li><a href="PMAC_(cryptography)" title="PMAC (cryptography)">PMAC</a></li>
<li><a href="Poly1305" title="Poly1305">Poly1305</a></li>
<li><a href="SipHash" title="SipHash">SipHash</a></li>
<li><a href="UMAC_(cryptography)" title="UMAC (cryptography)">UMAC</a></li>
<li><a href="VMAC" title="VMAC">VMAC</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Authenticated_encryption" title="Authenticated encryption">Authenticated<br>encryption</a> modes</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CCM_mode" title="CCM mode">CCM</a></li>
<li><a href="ChaCha20-Poly1305" title="ChaCha20-Poly1305">ChaCha20-Poly1305</a></li>
<li><a href="CWC_mode" title="CWC mode">CWC</a></li>
<li><a href="EAX_mode" title="EAX mode">EAX</a></li>
<li><a href="Galois/Counter_Mode" title="Galois/Counter Mode">GCM</a></li>
<li><a href="IAPM_(mode)" title="IAPM (mode)">IAPM</a></li>
<li><a href="OCB_mode" title="OCB mode">OCB</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Attacks</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="Preimage_attack" title="Preimage attack">Preimage attack</a></li>
<li><a href="Birthday_attack" title="Birthday attack">Birthday attack</a></li>
<li><a href="Brute-force_attack" title="Brute-force attack">Brute-force attack</a></li>
<li><a href="Rainbow_table" title="Rainbow table">Rainbow table</a></li>
<li><a href="Side-channel_attack" title="Side-channel attack">Side-channel attack</a></li>
<li><a href="Length_extension_attack" title="Length extension attack">Length extension attack</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Design</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Avalanche_effect" title="Avalanche effect">Avalanche effect</a></li>
<li><a href="Hash_collision" title="Hash collision">Hash collision</a></li>
<li><a href="Merkle%E2%80%93Damg%C3%A5rd_construction" title="Merkle–Damgård construction">Merkle–Damgård construction</a></li>
<li><a href="Sponge_function" title="Sponge function">Sponge function</a></li>
<li><a href="HAIFA_construction" title="HAIFA construction">HAIFA construction</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Standardization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CAESAR_Competition" title="CAESAR Competition">CAESAR Competition</a></li>
<li><a href="CRYPTREC" title="CRYPTREC">CRYPTREC</a></li>
<li><a href="NESSIE" title="NESSIE">NESSIE</a></li>
<li><a href="NIST_hash_function_competition" title="NIST hash function competition">NIST hash function competition</a></li>
<li><a href="Password_Hashing_Competition" title="Password Hashing Competition">Password Hashing Competition</a></li>
<li><a href="NSA_Suite_B_Cryptography" title="NSA Suite B Cryptography">NSA Suite B</a></li>
<li><a href="Commercial_National_Security_Algorithm_Suite" title="Commercial National Security Algorithm Suite">CNSA</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Utilization</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Post-quantum_cryptography#Hash-based_cryptography" title="Post-quantum cryptography">Hash-based cryptography</a></li>
<li><a href="Merkle_tree" title="Merkle tree">Merkle tree</a></li>
<li><a href="Message_authentication" title="Message authentication">Message authentication</a></li>
<li><a href="Proof_of_work" title="Proof of work">Proof of work</a></li>
<li><a href="Salt_(cryptography)" title="Salt (cryptography)">Salt</a></li>
<li><a href="Pepper_(cryptography)" title="Pepper (cryptography)">Pepper</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Cryptography149" style="font-size:114%;margin:0 4em"><a href="Cryptography" title="Cryptography">Cryptography</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="History_of_cryptography" title="History of cryptography">History of cryptography</a></li>
<li><a href="Outline_of_cryptography" title="Outline of cryptography">Outline of cryptography</a></li>
<li><a href="Classical_cipher" title="Classical cipher">Classical cipher</a></li>
<li><a href="Cryptographic_protocol" title="Cryptographic protocol">Cryptographic protocol</a>
<ul><li><a href="Authentication_protocol" title="Authentication protocol">Authentication protocol</a></li></ul></li>
<li><a href="Cryptographic_primitive" title="Cryptographic primitive">Cryptographic primitive</a></li>
<li><a href="Cryptanalysis" title="Cryptanalysis">Cryptanalysis</a></li>
<li><a href="Cryptocurrency" title="Cryptocurrency">Cryptocurrency</a></li>
<li><a href="Cryptosystem" title="Cryptosystem">Cryptosystem</a></li>
<li><a href="Cryptographic_nonce" title="Cryptographic nonce">Cryptographic nonce</a></li>
<li><a href="Cryptovirology" title="Cryptovirology">Cryptovirology</a></li>
<li><a href="Hash_function" title="Hash function">Hash function</a>
<ul><li><a href="Cryptographic_hash_function" title="Cryptographic hash function">Cryptographic hash function</a></li>
<li><a href="Key_derivation_function" title="Key derivation function">Key derivation function</a></li>
<li><a href="Secure_Hash_Algorithms" title="Secure Hash Algorithms">Secure Hash Algorithms</a></li></ul></li>
<li><a href="Digital_signature" title="Digital signature">Digital signature</a></li>
<li><a href="Kleptography" title="Kleptography">Kleptography</a></li>
<li><a href="Key_(cryptography)" title="Key (cryptography)">Key (cryptography)</a></li>
<li><a href="Key_exchange" title="Key exchange">Key exchange</a></li>
<li><a href="Key_generator" title="Key generator">Key generator</a></li>
<li><a href="Key_schedule" title="Key schedule">Key schedule</a></li>
<li><a href="Key_stretching" title="Key stretching">Key stretching</a></li>
<li><a href="Keygen" title="Keygen">Keygen</a></li>
<li>Machines</li>
<li><a href="Cryptojacking_malware" class="mw-redirect" title="Cryptojacking malware">Cryptojacking malware</a></li>
<li><a href="Ransomware" title="Ransomware">Ransomware</a></li>
<li><a href="Random_number_generation" title="Random number generation">Random number generation</a>
<ul><li><a href="Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">Cryptographically secure pseudorandom number generator</a> (CSPRNG)</li></ul></li>
<li><a href="Pseudorandom_noise" title="Pseudorandom noise">Pseudorandom noise</a> (PRN)</li>
<li><a href="Secure_channel" title="Secure channel">Secure channel</a></li>
<li><a href="Insecure_channel" class="mw-redirect" title="Insecure channel">Insecure channel</a></li>
<li><a href="Subliminal_channel" title="Subliminal channel">Subliminal channel</a></li>
<li><a href="Encryption" title="Encryption">Encryption</a></li>
<li><a href="Decryption" class="mw-redirect" title="Decryption">Decryption</a></li>
<li><a href="End-to-end_encryption" title="End-to-end encryption">End-to-end encryption</a></li>
<li><a href="Harvest_now%2C_decrypt_later" title="Harvest now, decrypt later">Harvest now, decrypt later</a></li>
<li><a href="Information-theoretic_security" title="Information-theoretic security">Information-theoretic security</a></li>
<li><a href="Plaintext" title="Plaintext">Plaintext</a></li>
<li><a href="Codetext" class="mw-redirect" title="Codetext">Codetext</a></li>
<li><a href="Ciphertext" title="Ciphertext">Ciphertext</a></li>
<li><a href="Shared_secret" title="Shared secret">Shared secret</a></li>
<li><a href="Trapdoor_function" title="Trapdoor function">Trapdoor function</a></li>
<li><a href="Trusted_timestamping" title="Trusted timestamping">Trusted timestamping</a></li>
<li><a href="Key-based_routing" title="Key-based routing">Key-based routing</a></li>
<li><a href="Onion_routing" title="Onion routing">Onion routing</a></li>
<li><a href="Garlic_routing" title="Garlic routing">Garlic routing</a></li>
<li><a href="Kademlia" title="Kademlia">Kademlia</a></li>
<li><a href="Mix_network" title="Mix network">Mix network</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mathematics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cryptographic_hash_function" title="Cryptographic hash function">Cryptographic hash function</a></li>
<li><a href="Block_cipher" title="Block cipher">Block cipher</a></li>
<li><a href="Stream_cipher" title="Stream cipher">Stream cipher</a></li>
<li><a href="Symmetric-key_algorithm" title="Symmetric-key algorithm">Symmetric-key algorithm</a></li>
<li><a href="Authenticated_encryption" title="Authenticated encryption">Authenticated encryption</a></li>
<li><a href="Public-key_cryptography" title="Public-key cryptography">Public-key cryptography</a></li>
<li><a href="Quantum_key_distribution" title="Quantum key distribution">Quantum key distribution</a></li>
<li><a href="Quantum_cryptography" title="Quantum cryptography">Quantum cryptography</a></li>
<li><a href="Post-quantum_cryptography" title="Post-quantum cryptography">Post-quantum cryptography</a></li>
<li><a href="Message_authentication_code" title="Message authentication code">Message authentication code</a></li>
<li><a href="Cryptographically_secure_pseudorandom_number_generator" title="Cryptographically secure pseudorandom number generator">Random numbers</a></li>
<li><a href="Steganography" title="Steganography">Steganography</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-15" href="https://en.wikipedia.org/wiki/?title=Collision_attack&oldid=1300702891">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>